/*
 * @lc app=leetcode.cn id=541 lang=cpp
 *
 * [541] 反转字符串 II
 */

// @lc code=start
class Solution
{
public:
    string replaceSpace(string s)
    {
        //将s中所有每个空格替换为%20
        //首先需要将s扩充到需要的大小
        int len = 0;
        for (char c : s)
        {
            if (c == ' ')
            {
                len += 2;
            }
        }
        int oldSize = s.size();
        int newSize = oldSize + len;
        s.resize(s.size() + len);
        for (int i = oldSize - 1, j = newSize - 1; j < i; j--, i--)
        {
            if (s[j] != ' ')
            {
                s[j] = s[i];
            }
            else
            {
                s[j--] = '0';
                s[j--] = '2';
                s[j] = '%';
            }
        }
        return s;
    }
};
// @lc code=end
